import 'package:json_annotation/json_annotation.dart';

import '../../user/user.dart';
import 'hb_message_type.dart';
import 'message.dart';
import 'hb_rtm_message_type.dart';
import 'show_item.dart';
part 'chat_content.g.dart';

@JsonSerializable()
class ChatContent {
  User? senderUser;
  User? receiveUser;
  List<ShowItem?>? showItem;
  BoxItem? boxItem;
  Message? message;

  /// 本地消息类型
  @JsonKey(name: 'type')
  @HBMessageTypeConverter() // 使用注解方式
  HBMessageType? type;

  /// rtm 消息类型
  @JsonKey(name: 'rtmType')
  @HBRtmMessageTypeConverter() // 使用注解方式
  HBRtmMessageType? rtmType;

  ChatContent();
  factory ChatContent.fromJson(Map<String, dynamic> json) =>
      _$ChatContentFromJson(json);
  Map<String, dynamic> toJson() => _$ChatContentToJson(this);
}
